home *** CD-ROM | disk | FTP | other *** search
/ Aminet 43 / Aminet 43 (2001)(GTI - Schatztruhe)[!][Jun 2001].iso / Aminet / game / demo / Mattonite_Src.lha / MattoniteEditor.AMOS / MattoniteEditor.amosSourceCode
AMOS Source Code  |  2001-02-25  |  15KB  |  490 lines

  1. '-> Mattonite Editor by Stefano Regattin 
  2. 'i> 13 ottobre 1996
  3. 'm> 14,16,17,18,19,20,25,26,30 ottobre 1996
  4. 'm> 3 luglio 1997
  5. 'm> 12 novembre 1997 
  6. 'm> 10,18 dicembre 1997
  7. 'm> 15 febbraio 1998 
  8. 'm> 19,20,21,22,24,30 maggio 2000
  9. 'm> 17 luglio 2000 
  10. 'm> 6 dicembre 2000
  11. '--------------------------------------------------------------------------- 
  12. 'To run this editor you must have all the data for it; you can find them in
  13. 'the archive of the executables Mattonite.lha on Aminet in the drawer
  14. 'game/demo.  
  15. 'Per eseguire questo editore dovete avere tutti i suoi dati; li potete trovare 
  16. 'nell'archivio degli eseguibili Mattonite.lha su Aminet nel cassetto 
  17. 'game/demo.
  18. '----------- 
  19. OGGETTI$="MattoniteOggetti.Abk"
  20. BANCO=65535
  21. POSIZIONELINEAMAGGIORE=255
  22. POSIZIONELINEAMINORE=0
  23. Dim MATTONCINO(246),X0ZONA(246),Y0ZONA(246)
  24. Global FILE$,LIVELLO$,NOMEFILE$,OGGETTI$,PERCORSO$,PERCORSODEILIVELLI$
  25. Global PERCORSODEGLIOGGETTI$
  26. Global BANCO,BLULINEAMINORE,BONUS,C0LORELINEAMAGGIORE,C0LORELINEAMINORE
  27. Global CONVERSIONERIUSCITA,LINEAMAGGIORE
  28. Global LIVELLO,LINEE,POSIZIONELINEAMAGGIORE,POSIZIONELINEAMINORE
  29. Global RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
  30. Global ROSSOLINEAMINORE,VERDELINEAMINORE
  31. Global MATTONCINO(),X0ZONA(),Y0ZONA()
  32. Proc INDIVIDUALAPOSIZIONEDELPROGRAMMA
  33. Proc IMPOSTAIPERCORSIDEIFILE
  34. Proc IMPOSTALOSCHERMO
  35. Proc IMPOSTALARCOBALENO
  36. Proc IMPOSTAILAMPEGGI
  37. Proc CARICAGLIOGGETTI
  38. Proc IMPOSTAICOLORI
  39. Proc IMPOSTALEZONEDEIMATTONCINI
  40. Proc IMPOSTALABARRADISCORRIMENTO
  41. Proc MOSTRALEZONE
  42. Proc MOSTRALALINEAATTIVA
  43. LINEAMAGGIORE=True
  44. Proc MOSTRALALINEAATTIVA
  45. Ink 62 : Bar 20,209 To 29,218
  46. Ink 61 : Polyline 20,217 To 20,209 To 28,209
  47. Polyline 24,211 To 22,213 To 22,214 To 24,216
  48. Ink 63 : Polyline 21,218 To 29,218 To 29,210
  49. Polyline 27,211 To 25,213 To 25,214 To 27,216
  50. Set Zone 248,20,209 To 29,218
  51. Get Icon 1,20,209 To 29+1,218+1
  52. Ink 62 : Bar 30,209 To 39,218
  53. Ink 61 : Polyline 30,217 To 30,209 To 38,209
  54. Polyline 32,211 To 34,213 To 34,214 To 32,216
  55. Ink 63 : Polyline 31,218 To 39,218 To 39,210
  56. Polyline 35,211 To 37,213 To 37,214 To 35,216
  57. Set Zone 249,30,209 To 39,218
  58. Get Icon 2,30,209 To 39+1,218+1
  59. Set Zone 250,233,209 To 264,223
  60. Set Zone 251,233,225 To 264,239
  61. Set Zone 252,233,241 To 264,255
  62. Set Zone 253,273,0 To 319,255
  63. Proc MOSTRAILLIVELLO
  64. Paste Icon 64,209,1
  65. Set Zone 254,64,209 To 73,218
  66. Paste Icon 74,209,2
  67. Set Zone 255,74,209 To 83,218
  68. Proc MOSTRAILBONUS
  69. Paste Icon 140,209,1
  70. Set Zone 256,140,209 To 149,218
  71. Paste Icon 150,209,2
  72. Set Zone 257,150,209 To 159,218
  73. Set Zone 258,0,248 To 31,255 : Rem Load 
  74. Set Zone 259,40,248 To 71,255 : Rem Save 
  75. Set Zone 260,80,248 To 159,255 : Rem Line 
  76. Set Zone 261,0,240 To 55,247 : Rem Rainbow
  77. Set Zone 262,56,240 To 71,247 : Rem Arrow up 
  78. Set Zone 263,72,240 To 87,247 : Rem Arrow down 
  79. Set Zone 264,160,209 To 191,216 : Rem Quit 
  80. Ink 29,32 : Text 160,216,"Quit"
  81. Limit Mouse 
  82. Paste Bob 0,209,83
  83. MATTONCINO=1
  84. Do 
  85.  XTOPO=X Screen(X Mouse)
  86.  YTOPO=Y Screen(Y Mouse)
  87.  TASTODELTOPOCLICCATO=Mouse Click
  88.  TASTODELTOPOPREMUTO=Mouse Key
  89.  ZONATOPO=Mouse Zone
  90.  If TASTODELTOPOPREMUTO=1
  91.   If ZONATOPO>0 and ZONATOPO<248
  92.    If MATTONCINO=0
  93.     Ink 0 : Bar X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1) To X0ZONA(ZONATOPO-1)+19,Y0ZONA(ZONATOPO-1)+9
  94.    Else 
  95.     Paste Bob X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1),MATTONCINO+82
  96.    End If 
  97.    MATTONCINO(ZONATOPO-1)=MATTONCINO
  98.   Else If ZONATOPO>249 and ZONATOPO<253
  99.    If LINEAMAGGIORE=True
  100.     ROSSO=C0LORELINEAMAGGIORE/256
  101.     VERDE=C0LORELINEAMAGGIORE/16 mod 16
  102.     BLU=C0LORELINEAMAGGIORE mod 16
  103.    Else 
  104.     ROSSO=C0LORELINEAMINORE/256
  105.     VERDE=C0LORELINEAMINORE/16 mod 16
  106.     BLU=C0LORELINEAMINORE mod 16
  107.    End If 
  108.    If ZONATOPO=250
  109.     ROSSO=(XTOPO-233)/2
  110.     Hslider 233,209 To 264,223,16,ROSSO,1
  111.     Ink 0 : Bar 217,216 To 232,223
  112.     ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
  113.    Else If ZONATOPO=251
  114.     VERDE=(XTOPO-233)/2
  115.     Hslider 233,225 To 264,239,16,VERDE,1
  116.     Ink 0 : Bar 217,232 To 232,239
  117.     VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
  118.    Else If ZONATOPO=252
  119.     BLU=(XTOPO-233)/2
  120.     Hslider 233,241 To 264,255,16,BLU,1
  121.     Ink 0 : Bar 217,248 To 232,255
  122.     BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
  123.    End If 
  124.    C0LORE=ROSSO*256+VERDE*16+BLU
  125.    Colour 1,C0LORE
  126.    If LINEAMAGGIORE=True
  127.     C0LORELINEAMAGGIORE=C0LORE
  128.     Rain(0,POSIZIONELINEAMAGGIORE)=C0LORELINEAMAGGIORE
  129.    Else 
  130.     C0LORELINEAMINORE=C0LORE
  131.     Rain(0,POSIZIONELINEAMINORE)=C0LORELINEAMINORE
  132.    End If 
  133.    Rainbow 0,257,0,271
  134.   Else If ZONATOPO=253
  135.    If YTOPO>POSIZIONELINEAMINORE
  136.     Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  137.     POSIZIONELINEAMAGGIORE=YTOPO
  138.     LINEAMAGGIORE=True
  139.     Proc MOSTRALALINEAATTIVA
  140.    End If 
  141.   Else If ZONATOPO=258
  142.    Inverse On : Print At(0,31);"Load"; : Inverse Off 
  143.    Proc CARICAILLIVELLO
  144.    Proc DABANCOAVARIABILI
  145.    Rainbow 0,257,0,271
  146.    Proc MOSTRAIMATTONCINI
  147.    Proc MOSTRAILBONUS
  148.    Proc MOSTRALEZONE
  149.    Proc MOSTRALALINEAATTIVA
  150.    LINEAMAGGIORE= Not LINEAMAGGIORE
  151.    Proc MOSTRALALINEAATTIVA
  152.   Else If ZONATOPO=259
  153.    Inverse On : Print At(5,31);"Save"; : Inverse Off 
  154.    Proc DAVARIABILIABANCO
  155.    Proc SALVAILLIVELLO
  156.    Proc MOSTRALEZONE
  157.    Proc MOSTRALALINEAATTIVA
  158.   End If 
  159.  Else If TASTODELTOPOPREMUTO=2
  160.   If ZONATOPO=253
  161.    If YTOPO<POSIZIONELINEAMAGGIORE
  162.     Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  163.     POSIZIONELINEAMINORE=YTOPO
  164.     LINEAMAGGIORE=False
  165.     Proc MOSTRALALINEAATTIVA
  166.    End If 
  167.   Else If ZONATOPO=254
  168.    Add LIVELLO,-1,0 To 999
  169.    Proc MOSTRAILLIVELLO
  170.   Else If ZONATOPO=255
  171.    Add LIVELLO,1,0 To 999
  172.    Proc MOSTRAILLIVELLO
  173.   Else If ZONATOPO=256
  174.    Add BONUS,-1,0 To 9999999
  175.    Proc MOSTRAILBONUS
  176.   Else If ZONATOPO=257
  177.    Add BONUS,1,0 To 9999999
  178.    Proc MOSTRAILBONUS
  179.   End If 
  180.  End If 
  181.  If TASTODELTOPOCLICCATO=1
  182.   If ZONATOPO=248
  183.    Add MATTONCINO,-1,0 To 33
  184.    If MATTONCINO=0
  185.     Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
  186.    Else 
  187.     Paste Bob 0,209,82+MATTONCINO
  188.    End If 
  189.   Else If ZONATOPO=249
  190.    Add MATTONCINO,1,0 To 33
  191.    If MATTONCINO=0
  192.     Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
  193.    Else 
  194.     Paste Bob 0,209,82+MATTONCINO
  195.    End If 
  196.   Else If ZONATOPO=254
  197.    Add LIVELLO,-1,0 To 999
  198.    Proc MOSTRAILLIVELLO
  199.   Else If ZONATOPO=255
  200.    Add LIVELLO,1,0 To 999
  201.    Proc MOSTRAILLIVELLO
  202.   Else If ZONATOPO=256
  203.    Add BONUS,-1,0 To 9999999
  204.    Proc MOSTRAILBONUS
  205.   Else If ZONATOPO=257
  206.    Add BONUS,1,0 To 9999999
  207.    Proc MOSTRAILBONUS
  208.   Else If ZONATOPO=260
  209.    LINEAMAGGIORE= Not LINEAMAGGIORE
  210.    Proc MOSTRALALINEAATTIVA
  211.   Else If ZONATOPO=261
  212.    Inverse On : Print At(0,30);"Rainbow"; : Inverse Off 
  213.    LINEE=POSIZIONELINEAMAGGIORE-POSIZIONELINEAMINORE+1
  214.    If LINEE>2
  215.     Proc CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
  216.     Proc PROGRESSIONECOLORI
  217.    Else 
  218.     Bell 1
  219.    End If 
  220.    Proc MOSTRALEZONE
  221.    Proc MOSTRALALINEAATTIVA
  222.   Else If ZONATOPO=262
  223.    Inverse On : Print At(7,30);Chr$(147);Chr$(148); : Inverse Off 
  224.    If LINEAMAGGIORE=True
  225.     If POSIZIONELINEAMAGGIORE>0 and POSIZIONELINEAMAGGIORE>POSIZIONELINEAMINORE+1
  226.      Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  227.      Dec POSIZIONELINEAMAGGIORE
  228.      Wait 5
  229.     End If 
  230.    Else 
  231.     If POSIZIONELINEAMINORE>0
  232.      Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  233.      Dec POSIZIONELINEAMINORE
  234.      Wait 5
  235.     End If 
  236.    End If 
  237.    Proc MOSTRALEZONE
  238.    Proc MOSTRALALINEAATTIVA
  239.   Else If ZONATOPO=263
  240.    Inverse On : Print At(9,30);Chr$(149);Chr$(150); : Inverse Off 
  241.    If LINEAMAGGIORE=True
  242.     If POSIZIONELINEAMAGGIORE<255
  243.      Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  244.      Inc POSIZIONELINEAMAGGIORE
  245.      Wait 5
  246.     End If 
  247.    Else 
  248.     If POSIZIONELINEAMINORE<255 and POSIZIONELINEAMINORE<POSIZIONELINEAMAGGIORE-1
  249.      Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  250.      Inc POSIZIONELINEAMINORE
  251.      Wait 5
  252.     End If 
  253.    End If 
  254.    Proc MOSTRALEZONE
  255.    Proc MOSTRALALINEAATTIVA
  256.   Else If ZONATOPO=264
  257.    Exit 
  258.   End If 
  259.  End If 
  260. Loop 
  261. Rainbow Del 0 : Screen Close 0 : Erase All : End 
  262. Procedure CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
  263.  ROSSOLINEAMAGGIORE=C0LORELINEAMAGGIORE/256
  264.  ROSSOLINEAMINORE=C0LORELINEAMINORE/256
  265.  RAGIONEDELROSSO#=(ROSSOLINEAMAGGIORE-ROSSOLINEAMINORE)/(LINEE-1.0)
  266.  VERDELINEAMAGGIORE=C0LORELINEAMAGGIORE/16 mod 16
  267.  VERDELINEAMINORE=C0LORELINEAMINORE/16 mod 16
  268.  RAGIONEDELVERDE#=(VERDELINEAMAGGIORE-VERDELINEAMINORE)/(LINEE-1.0)
  269.  BLULINEAMAGGIORE=C0LORELINEAMAGGIORE mod 16
  270.  BLULINEAMINORE=C0LORELINEAMINORE mod 16
  271.  RAGIONEDELBLU#=(BLULINEAMAGGIORE-BLULINEAMINORE)/(LINEE-1.0)
  272. End Proc
  273. Procedure CARICAGLIOGGETTI
  274.  Load PERCORSODEGLIOGGETTI$+OGGETTI$
  275. End Proc
  276. Procedure CARICAILLIVELLO
  277.  Erase BANCO
  278.  LIVELLO$="Livello"+Str$(LIVELLO)-" "
  279.  FILE$=PERCORSODEILIVELLI$+LIVELLO$
  280.  If Exist(FILE$)
  281.   Open In 1,FILE$
  282.   MARCATORE$=Input$(1,9)
  283.   LUNGHEZZABANCO=Lof(1)
  284.   Close 1
  285.   If MARCATORE$="Mattonite"
  286.    Reserve As Work BANCO,LUNGHEZZABANCO
  287.    Bload FILE$,Start(BANCO)
  288.   End If 
  289.  End If 
  290. End Proc
  291. Procedure DABANCOAVARIABILI
  292.  If Length(BANCO)>0
  293.   INDIRIZZO=Start(BANCO)+9
  294.   For A=0 To 246
  295.    MATTONCINO(A)=Peek(INDIRIZZO)
  296.    Inc INDIRIZZO
  297.   Next A
  298.   For A=0 To 255
  299.    ARCOBALENO=Peek(INDIRIZZO)
  300.    Inc INDIRIZZO
  301.    ARCOBALENO=ARCOBALENO+Peek(INDIRIZZO)*$100
  302.    Rain(0,A)=ARCOBALENO
  303.    Inc INDIRIZZO
  304.   Next A
  305.   BONUS=Peek(INDIRIZZO)
  306.   Inc INDIRIZZO
  307.   Add BONUS,Peek(INDIRIZZO)*100
  308.   Inc INDIRIZZO
  309.   Add BONUS,Peek(INDIRIZZO)*10000
  310.   Inc INDIRIZZO
  311.   Add BONUS,Peek(INDIRIZZO)*1000000
  312.   Inc INDIRIZZO
  313.   Print At(0,29);
  314.   If INDIRIZZO=Start(BANCO)+Length(BANCO)
  315.    Print "Level";LIVELLO;" loaded";
  316.   Else 
  317.    Print "Data error";
  318.   End If 
  319.  Else 
  320.   Print At(0,29);"Level not loaded";
  321.  End If 
  322.  Wait 100
  323.  Print At(0,29);Space$(28);
  324. End Proc
  325. Procedure DAVARIABILIABANCO
  326.  Reserve As Work BANCO,772
  327.  INDIRIZZO=Start(BANCO)
  328.  Poke$ INDIRIZZO,"Mattonite"
  329.  Add INDIRIZZO,9
  330.  For A=0 To 246
  331.   Poke INDIRIZZO,MATTONCINO(A)
  332.   Inc INDIRIZZO
  333.  Next A
  334.  For A=0 To 255
  335.   ARCOBALENO=Rain(0,A)
  336.   Poke INDIRIZZO,ARCOBALENO mod $100
  337.   Inc INDIRIZZO
  338.   Poke INDIRIZZO,ARCOBALENO/$100
  339.   Inc INDIRIZZO
  340.  Next A
  341.  Poke INDIRIZZO,BONUS mod 100
  342.  Inc INDIRIZZO
  343.  Poke INDIRIZZO,BONUS/100 mod 100
  344.  Inc INDIRIZZO
  345.  Poke INDIRIZZO,BONUS/10000 mod 100
  346.  Inc INDIRIZZO
  347.  Poke INDIRIZZO,BONUS/1000000 mod 100
  348.  Inc INDIRIZZO
  349.  Print At(0,29);
  350.  If INDIRIZZO=Start(BANCO)+Length(BANCO)
  351.   Print "Level";LIVELLO;" converted";
  352.   CONVERSIONERIUSCITA=True
  353.  Else 
  354.   Print "Data error";
  355.   CONVERSIONERIUSCITA=False
  356.  End If 
  357.  Wait 100
  358.  Print At(0,29);Space$(28);
  359. End Proc
  360. Procedure INDIVIDUALAPOSIZIONEDELPROGRAMMA
  361.  PERCORSO$=Dir$
  362. End Proc
  363. Procedure IMPOSTAICOLORI
  364.  Get Bob Palette 
  365. End Proc
  366. Procedure IMPOSTAILAMPEGGI
  367.  Flash 20,"(0FF,2)(FFF,1)(0FF,2)(000,1)"
  368.  Flash 21,"(F70,2)(FFF,1)(F70,2)(000,1)"
  369.  Flash 22,"(F77,9)(FF7,9)(7F7,9)(7FF,9)(77F,9)(F7F,9)"
  370. End Proc
  371. Procedure IMPOSTAIPERCORSIDEIFILE
  372.  PERCORSODEGLIOGGETTI$=PERCORSO$+"Grafica/"
  373.  PERCORSODEILIVELLI$=PERCORSO$+"Livelli/"
  374. End Proc
  375. Procedure IMPOSTALABARRADISCORRIMENTO
  376.  Set Slider 61,61,29,1,63,63,29,1
  377. End Proc
  378. Procedure IMPOSTALARCOBALENO
  379.  Set Rainbow 0,0,271,"","","" : Rainbow 0,257,0,271
  380. End Proc
  381. Procedure IMPOSTALEZONEDEIMATTONCINI
  382.  Reserve Zone 264
  383.  Ink 29 : Polyline 272,0 To 272,208 To 0,208
  384.  For M=0 To 246
  385.   LINEADIMATTONCINI=M/13
  386.   RIGADIMATTONCINI=M mod 13
  387.   X0ZONA(M)=RIGADIMATTONCINI*21
  388.   Y0ZONA(M)=LINEADIMATTONCINI*11
  389.   MATTONCINO(M)=1
  390.   If MATTONCINO(M)>0 Then Paste Bob X0ZONA(M),Y0ZONA(M),82+MATTONCINO(M)
  391.   Set Zone M+1,X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+20,Y0ZONA(M)+10
  392.  Next M
  393. End Proc
  394. Procedure IMPOSTALOSCHERMO
  395.  Screen Open 0,320,256,64,Lowres
  396.  Curs Off : Flash Off : Pen 29 : Paper 0 : Cls 
  397. End Proc
  398. Procedure MOSTRAILBONUS
  399.  CIFRA=BONUS/1000000 mod 10
  400.  Ink 29,32 : Text 84,216,Str$(CIFRA)-" "
  401.  CIFRA=BONUS/100000 mod 10
  402.  Ink 29,32 : Text 92,216,Str$(CIFRA)-" "
  403.  CIFRA=BONUS/10000 mod 10
  404.  Ink 29,32 : Text 100,216,Str$(CIFRA)-" "
  405.  CIFRA=BONUS/1000 mod 10
  406.  Ink 29,32 : Text 108,216,Str$(CIFRA)-" "
  407.  CIFRA=BONUS/100 mod 10
  408.  Ink 29,32 : Text 116,216,Str$(CIFRA)-" "
  409.  CIFRA=BONUS/10 mod 10
  410.  Ink 29,32 : Text 124,216,Str$(CIFRA)-" "
  411.  CIFRA=BONUS mod 10
  412.  Ink 29,32 : Text 132,216,Str$(CIFRA)-" "
  413. End Proc
  414. Procedure MOSTRAILLIVELLO
  415.  CIFRA=LIVELLO/100 mod 10
  416.  Ink 29,32 : Text 40,216,Str$(CIFRA)-" "
  417.  CIFRA=LIVELLO/10 mod 10
  418.  Ink 29,32 : Text 48,216,Str$(CIFRA)-" "
  419.  CIFRA=LIVELLO mod 10
  420.  Ink 29,32 : Text 56,216,Str$(CIFRA)-" "
  421. End Proc
  422. Procedure MOSTRAIMATTONCINI
  423.  For M=0 To 246
  424.   If MATTONCINO(M)=0
  425.    Ink 0 : Bar X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+19,Y0ZONA(M)+9
  426.   Else 
  427.    Paste Bob X0ZONA(M),Y0ZONA(M),MATTONCINO(M)+82
  428.   End If 
  429.  Next M
  430. End Proc
  431. Procedure MOSTRALALINEAATTIVA
  432.  If LINEAMAGGIORE=True
  433.   C0LORELINEAMAGGIORE=Rain(0,POSIZIONELINEAMAGGIORE)
  434.   Colour 1,C0LORELINEAMAGGIORE
  435.   Ink 1 : Bar 264,208 To 272,255
  436.   Ink 29 : Box 264,208 To 272,255
  437.   ROSSO=C0LORELINEAMAGGIORE/256
  438.   VERDE=C0LORELINEAMAGGIORE/16 mod 16
  439.   BLU=C0LORELINEAMAGGIORE mod 16
  440.   Ink 29 : Draw 272,POSIZIONELINEAMAGGIORE To 281,POSIZIONELINEAMAGGIORE
  441.   Ink 32 : Draw 310,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  442.  Else 
  443.   C0LORELINEAMINORE=Rain(0,POSIZIONELINEAMINORE)
  444.   Colour 1,C0LORELINEAMINORE
  445.   Ink 1 : Bar 264,208 To 272,255
  446.   Ink 29 : Box 264,208 To 272,255
  447.   ROSSO=C0LORELINEAMINORE/256
  448.   VERDE=C0LORELINEAMINORE/16 mod 16
  449.   BLU=C0LORELINEAMINORE mod 16
  450.   Ink 29 : Draw 272,POSIZIONELINEAMINORE To 281,POSIZIONELINEAMINORE
  451.   Ink 32 : Draw 310,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  452.  End If 
  453.  Hslider 233,209 To 264,223,16,ROSSO,1
  454.  Ink 0 : Bar 217,216 To 232,223
  455.  ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
  456.  Hslider 233,225 To 264,239,16,VERDE,1
  457.  Ink 0 : Bar 217,232 To 232,239
  458.  VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
  459.  Hslider 233,241 To 264,255,16,BLU,1
  460.  Ink 0 : Bar 217,248 To 232,255
  461.  BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
  462.  Locate 10,31
  463.  If LINEAMAGGIORE=True Then Print "Major"; Else Print "Minor";
  464. End Proc
  465. Procedure MOSTRALEZONE
  466.  Print At(0,30);Space$(28);At(0,30);"Rainbow";Chr$(147);Chr$(148);Chr$(149);Chr$(150)
  467.  Print At(0,31);Space$(28);At(0,31);"Load Save       line";
  468. End Proc
  469. Procedure PROGRESSIONECOLORI
  470.  Shared LINEE,RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
  471.  Shared ROSSOLINEAMINORE,VERDELINEAMINORE,BLULINEAMINORE
  472.  For LINEA=1 To LINEE-2
  473.   ROSSO=ROSSOLINEAMINORE+(LINEA)*RAGIONEDELROSSO#
  474.   VERDE=VERDELINEAMINORE+(LINEA)*RAGIONEDELVERDE#
  475.   BLU=BLULINEAMINORE+(LINEA)*RAGIONEDELBLU#
  476.   C0LORE=ROSSO*256+VERDE*16+BLU
  477.   Rain(0,POSIZIONELINEAMINORE+LINEA)=C0LORE : Rainbow 0,257,0,271
  478.   Bell 96
  479.  Next LINEA
  480. End Proc
  481. Procedure SALVAILLIVELLO
  482.  If CONVERSIONERIUSCITA=True
  483.   LIVELLO$="Livello"+Str$(LIVELLO)-" "
  484.   FILE$=PERCORSODEILIVELLI$+LIVELLO$
  485.   Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO)
  486.   Print At(0,29);"Level";LIVELLO;" saved";
  487.   Wait 100
  488.   Print At(0,29);Space$(28);
  489.  End If 
  490. End Proc